import os
import urllib.request
import json
import jsonpath

if not os.path.exists('./任意保存的图片'):
    os.mkdir('./任意保存的图片')
while True:
    keyword = input("请输入要搜索下载的图片：")
    keywords = urllib.parse.quote(keyword)
    pages = int(input("请问要下载多少页："))
    for page in range(1, pages + 1):
        url = f'https://pic.sogou.com/napi/pc/searchList?mode=1&start={(page - 1) * 48}&xml_len=48&query={keywords}'
        headers = {
            "User-Agent": "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,"
                          "likeGecko)Chrome/101.0.0.0Safari/537.36 "
        }
        request = urllib.request.Request(url=url, headers=headers)
        response = urllib.request.urlopen(request)
        html = response.read().decode('utf-8')
        if not os.path.exists(f'./任意保存的图片/{keyword}'):
            os.mkdir(f'./任意保存的图片/{keyword}')

        if not os.path.exists(f'./任意保存的图片/{keyword}'):
            os.mkdir(f'./任意保存的图片/{keyword}')

        with open(f'./任意保存的图片/{keyword}/pixie-{page}.json', 'w', encoding='utf-8') as f:
            f.write(html)

        obj = json.load(open(f'./任意保存的图片/{keyword}/pixiv-{page}.json', 'r', encoding='utf-8'))
        img_list = jsonpath.jsonpath(obj, '$..oriPicUrl')
        name_list = jsonpath.jsonpath(obj, '$..title')

        for i in range(len(img_list)):
            src = img_list[i]
            name = name_list[i]
            # suffix = src.split('.')[-1]
            try:
                urllib.request.urlretrieve(url=src, filename=f'./任意保存的图片/{keyword}/' + f'{name}' + '.' + 'jpg')
                print(f'{name}---恭喜下载成功！')
            except:
                print(f'{name}---下载失败！')

        print(f'**********************************当前是第{page}**********************************')
        os.remove(os.path.join(os.path.dirname(__file__), f'./任意保存的图片/{keyword}/pixiv-{page}.json'))
    print("所有图片已经下载完成！！！")
